// //方式一：
// function s(x)//s为函数名，x为变量名
// {
//     if (x>=1) {
//         return 1;
//     }else{
//         return 0;
//     }
// }
// //方式二：
// var s1=function(x)
// {
//     if (x>=1) {
//         return 1;
//     }else{
//         return 2;
//     }
// };//方式二后面一定要跟一个“；”

// //先调用再传参
// console.log(s(2));//返回：1
// console.log(s1(0));//返回：2

// function s(x){//对参数进行检查
//     if (typeof x!=='number') {
//         throw 'Not a number';//如果参数为空，则在控制台上输出错误提示：'Not a number'
//     }
//     if (x>=0) {
//         return x;
//     }else{
//         return -x;
//     }
//     console.log(x);
// }
// s(10);//返回：10
// s(-9);//返回：-9
// //由于js允许传入任意个参数而不影响调用，因此传入的次数比定义的次数多也没问题。
// s(10,'你好');//返回：10
// s(9,'世界');//返回：9
// s();//返回：undefined

//arguments
'use strict'
function a(x){
    console.log('x = '+x);//返回：10
    for(var i=0; i<arguments.length;i++){
        console.log('arg'+i+'='+arguments[i]);//返回：arg[0]=10,arg[1]=20,arg[3]=30
    }
}
a(10,20,30)

function aa(x){
    if (arguments.length===0) {
        return 0;
    }
    var x=arguments[0];
    return x>=0 ? x:-x
}
console.log(aa());//返回：0
console.log(aa(10));//返回：10
console.log(aa(-22));//返回：22

// foo(a[,b],c)
//接受2~3个参数，b是可参数，如果只传2个参数，b默认为null：
function foo(a,b,c){
    if (arguments.length ===2) {
        //实际上拿到的参数是a和b，c为undefined
        c=b;//把b赋给c
        b=null;//b变成默认值
    }
    for (var i = 0; i <= arguments.length; i++) {
        console.log('foo'+i+'='+arguments[i]); 
    }
}
foo(20,1,44);